<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

<script>
    /* ES6允许使用箭头(=>)来声明函数 */
    // 声明一个函数

    let fn = (a, b) => {
        return a + b
    }

    let result = fn(1, 2)
    console.log(result)

    // 1.this是静态的 this始终指向函数声明时所在作用域下的值
    window.name = "zhangtong"

    function getName() {
        console.log(this.name)
    }

    let getName2 = () => {
        console.log(this.name)
    }

    const school = {
        name: "星辰大海"
    }
    // 直接调用 因为都在全局作用域内 所以this指向的是window 所以打印出来的都是zhangtong
    // getName()
    // getName2()


    // getName.call(school) 结果:星辰大海
    // getName2.call(school) 结果:zhangtong


    // 2.不能作为构造实例化对象

    // let person = (name, age) => {
    //     this.name = name
    //     this.age = age
    // }
    // let me = new person('tong', 33)
    // console.log(me)


    // 3.不能使用arguments变量
    // let fn = () => {
    //     console.log(arguments)
    // }
    // fn(1, 2, 3)

    // 4.箭头函数的简写
    // 1)省略小括号 当形参有且只有一个的时候
    // let add = n => {
    //     return n + n
    // }
    //  2)省略花括号 当代码只有一条语句的时候 return也要省略 语句的执行结果就是函数的返回值
    // let pow = (n) => n * n
    // let pow = n=> n * n
    let result1 = 0
    for (let i = 2; i < 99; i++) {
        result1 = result1 + (i + 1) / i
    }
    console.log(result1)



    function max_gy(a, b) {
        while (true) {
            var yu = a % b;
            if (yu == 0) {
                return b;
            }
            a = b;
            b = yu;
        }
    }

    function min_gb(a, b) {
        return a * b / max_gy(a, b);
    }
</script>

</html>